/**
 * Company : SIANGKLOM.
 * Created By : Chatree Siangklom
 * Created On : Oct 9, 2013  3:58:27 PM 
 * e-Mail : dr_chatree@hotmail.com
 * Mobile Phone : (+66) 087-921-5115
 * Package Name : com.tis.database.services.promis
 * File Name : IGlPostingDetailServices.java
 * TODO
 */
package com.tis.database.services.promis;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.criterion.Criterion;

import com.tis.database.entitys.promis.GlPostingDetail;
import com.tis.database.entitys.promis.GlPostingDetailPK;
import com.tis.database.entitys.staging.FiCreditNoteOutb;
import com.tis.database.entitys.staging.FiDepositReturnOutb;
import com.tis.database.entitys.staging.FiInvReceiptOutb;
import com.tis.database.entitys.staging.FiInvoiceOutb;

/**
 * @author Chatree Siangklom of Administrator
 * Date =Oct 9, 2013 : 3:58:27 PM 
 * CreateBy=Chatree Siangklom
 * 
 * IGlPostingDetailServices
 * TODO
 */
public interface IGlPostingDetailServices {

	List<GlPostingDetail> Search(
								String company,
								String project,
								String voucherType,
								String voucherSeries,
								String voucherNumber,
								String glPostingSeqNumber,
								String syncIsstaging,
								String syncIssync,
								String unitNumber,
								String status,
								String createdOnStart,
								String createdOnEnd,
								int maxResult) throws HibernateException, Exception;
	
	void saveOrUpdate(GlPostingDetail e) throws HibernateException;
	
	void saveOrUpdate(List<GlPostingDetail> e) throws HibernateException;
	
	GlPostingDetail findById(GlPostingDetailPK id) throws HibernateException;
	
	List<GlPostingDetail> findByCriteria(Criterion criterion) throws HibernateException;
	
	List<GlPostingDetail> UpdateBackSapMessageRecv(List<FiInvReceiptOutb> lst) throws HibernateException, Exception;
	
	List<GlPostingDetail> UpdateBackSapMessageInv(List<FiInvoiceOutb> lst) throws HibernateException, Exception;
	
	List<GlPostingDetail> UpdateBackSapMessageCN(List<FiCreditNoteOutb> lst) throws HibernateException, Exception;
	
	List<GlPostingDetail> UpdateBackSapMessageDepo(List<FiDepositReturnOutb> lst) throws HibernateException, Exception;
	
}
